<?php
/* 文章模型
* @Author: {daifei}
* @Date:   2014-03-20 21:18:19
* @Last Modified by:   {daifei}
* @Last Modified time: 2014-03-22 18:34:18
* 
*/
	class ArticleModel extends Model{
		public $table='article';
		public $validate=array(
			array('title' ,'nonull' ,'标题不能为空',2,3) 
			);
		//自动完成---hdphp自动帮忙填数据
		public $auto=array(
			array('user_uid' ,'_uid','method',2,3),
			array('sendtime' ,'_sendtime','method',2,3)
			);
		/**
		 * [_uid 自动完成_uid]
		 * @return [type] [description]
		 */
		public function _uid(){
			return session('adminaid');

		}
		/**
		 * [_sendtime 自动完成_sendtime]
		 * @return [type] [description]
		 */
		public function _sendtime(){
			return time();
		}
		 
		/**
		 * [get_all_art 获得所有的文章以及将分页全部送过去]
		 * @return [type] [description]
		 */
		public function get_all_art(){
			//分页 以及全部的数据
			$total=$this->count();
			$page=new Page($total,10,3,3);
			$limit=$page->limit();
			$data=$this->limit($limit)->findAll();
			$data['page']=$page->show();
			return $data;
		}
		/**
		 * [add_date 添加数据  返回真和假 后面可以判断]
		 */
		public function add_date(){
			//========article数据的添加==data框架中的可以获得所有的数据
			// 1对多选文章属性 
			$attr=Q('attr');
			$this->data['attr']= is_array($attr) ? implode(',', $attr) :NULL;
			// 2上传图片
			$upload=new Upload();
			$files=$upload->upload();
			// p($_FILES['thumb']['name']);die;
			// 上传图片  1先用$_FILES判断 是否提交图片
			if(!empty($_FILES['thumb']['name'])){
				//2判断上传的类型错误
				if($upload->error){
					//把错误的信息压入到 模型的error的属性
					$this->error=$upload->error;
					return false;
				}
				//这里插入的缩略图  还有实际大小的图片path是路径
				//如果有上传  并且上传成功 需要将值插入到 post中等自动完成
				
				$this->data['thumb']=$files[0]['thumb'];
			}
			//返回插入时候的的自增id
			$aid=$this->add();
			
			//================处理article_tag的中间表的数据处理
			$art_tag=K('ArticleTag');

			//得到 分类 标签的id 数据的id
			$tid=Q('post.tid');
			$arr = array();
			if(is_array($tid)){

				foreach ($tid as $v) {
					
					$arr=array(
						'category_cid'	=>Q('category_cid' ,0,'intval'),
						'tag_tid'		=>$v,
						'article_aid'	=>$aid
						);
					
					//循环添加  避免形成二维数组
					$art_tag->add($arr);
				}
				
			}
			
			//======article data数据的添加
			$art_date=K('ArticleData');
			$arr=array(
				'keywords'	=>Q('keywords'),
				'description'	=>Q('description'),
				'content'		=>$_POST['content'],
				'article_aid'	=>$aid
				);
			if(!$art_date->create()){
				$this->error=$art_date->error;
				return false;
			}
			$art_date->add($arr);
			return true;

		}
		/**
		 * [del_data 删除将文章放进回收站中]
		 * @return [type] [description]
		 */
		public function recycle_data($aid,$num=1){
			$update=array('aid' =>$aid,'is_recycle' =>$num);
			return $this->update($update);

		}
		/**
		 * [recycle_del_data 回收站里面的删除]
		 * @return [type] [description]
		 */
		public function recycle_del_data(){
			
			$aid=Q('aid',0,'intval');
			$where=array('aid' => $aid);

			$re=$this->where($where)->find();
			$path=ROOT_PATH .  $re['thumb'];
			//删除第一个 缩略图
			!is_file($path) || unlink($path);
			$_path=strrchr($path, '.');
			$path=substr($path ,0 , strpos($path, C('THUMB_ENDFIX')));
			$path=$path . $_path;
			//删除第二个图 正常的图片
			!is_file($path) || unlink($path);
			//=====删除article表中的数据======
			if(!$this->where($where)->del()){
				return false;
			}
			//删除图片====

			//========删除artilcedata表
			$where=array('article_aid' => $aid);
			if(!K('ArticleData')->where($where)->del()){
				return false;
			}
			//==========删除articletag======
			$where=array('article_aid' => $aid);
			if(!K('ArticleTag')->where($where)->del()){
				return false;
			}
			return true;

		}
	}
?>
